package grapher;

/*
 * EikonaGrapher.java
 * Author: Ben McCormick
 * Written: June 27 2011
 * Last Edited: June 27 2011
 * Ben McCormick 2011
 * This file is part of The Eikona Project .
 *    Copyright 2011 Ben McCormick
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *    
 *    http://www.apache.org/licenses/LICENSE-2.0
 *    
 *     Unless required by applicable law or agreed to in writing, software
 *     distributed under the License is distributed on an "AS IS" BASIS,
 *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *     See the License for the specific language governing permissions and
 *     limitations under the License.
 */

import java.io.File;
import java.math.BigDecimal;

/**
 * Interface for the Eikona Grapher Produces graphs for the Eikona calculator project
 * @author Ben McCormick
 * Written: 6-27-11
 * Last Edited 6-27-11
 */
public interface EikonaGrapher {

	/**
	 * Graph out a series of equations
	 * @param expressions
	 */
	public File graph(String[] expressions);
	
	/**
	 * Set the window of the graph
	 * @param xmin
	 * @param xmax
	 * @param ymin
	 * @param ymax
	 * @return
	 */
	public boolean setWindow(BigDecimal xmin, BigDecimal xmax, BigDecimal ymin, BigDecimal ymax);
	
	/**
	 * Get the minimum X value
	 * @return
	 */
	public BigDecimal getXMin();
	
	/**
	 * Get the maximum X value
	 * @return
	 */
	public BigDecimal getXMax();
	
	/**
	 * Get minimum YValue
	 * @return
	 */
	public BigDecimal getYMin();
	
	/**
	 * Get the maximum YValue
	 * @return
	 */
	public BigDecimal getYMax();
}
